package SparkRDD.RDD算子.Transformations.聚合操作

import org.apache.spark.{SparkConf, SparkContext}
import org.junit.Test

/*
  * reduceByKey 表示分组聚合操作，按照Key将数据分组，然后把每一组数据reduce,可以在map端做Combiner ---- 能不能减少I/O
  * groupByKey  表示分组操作，按照Key将数据分组，列举出Key对应的所有值,不可以在map端做Combiner
 */
class groupByKeyTest {

  val conf = new SparkConf().setMaster("local[6]").setAppName("sample")
  val sc   = new SparkContext(conf)

  @Test
  def groupByKey: Unit ={
    sc.parallelize(Seq(("a",1),("b",2),("c",3),("a",1)))
      .groupByKey()
      .collect()
      .foreach(println(_))

  }

}
